package com.cjw.service.userMange;

import com.cjw.pojo.dto.database.PageDTO;
import com.cjw.pojo.dto.userMange.UserAuthorSimpleDTO;
import com.cjw.pojo.dto.userMange.UserSimpleDTO;
import com.cjw.pojo.query.systemManage.AddUserRole;
import com.cjw.pojo.query.systemManage.QueryAuthorDTO;
import com.cjw.pojo.query.userMange.UserQuery;

import java.util.List;

/**
 * @author : cjw
 * @date: : 2022/2/7 14:33
 * @description : 用户管理 Service
 */
public interface UserAccountService {
    /**
     * 查询全部用户基本信息
     * @return
     */
    PageDTO<List<UserSimpleDTO>> findAllUsers(UserQuery userQuery);

    /**
     * 修改用户状态
     * @param id
     * @return
     */
    Integer changeUserState(Long id);

    /**
     * 获取违规用户列表
     * @param queryAuthorDTO
     * @return
     */
    PageDTO<List<UserAuthorSimpleDTO>> findAllUsersAuthor(QueryAuthorDTO queryAuthorDTO);

    /**
     * 封禁用户权限
     * @param userId
     * @return
     */
    Boolean ban(Long userId, Integer type);

    /**
     * 解禁用户权限
     * @param userId
     * @return
     */
    Boolean unseal(Long userId, Integer type);

    /**
     * 查看是否在黑名单中
     * @param type
     * @return
     */
    Boolean isInBlackList(Integer type);

    /**
     * 添加角色
     * @param addUserRole
     * @return
     */
    Boolean addRole(AddUserRole addUserRole);
}
